const http = require("http");
const url = require("url");
const fs = require("fs");
const querystring = require("querystring");
// const { SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION } = require("constants");


http.createServer((req, res) => {

    if (req.url !== "/favicon.ico") {
        const urlObj = url.parse(req.url, true);
        switch (urlObj.pathname) {
            case "/api":
                ajaxHandle(req, res);
                break;
            default:
                fileHandle(req, res);
        }
    }
}).listen("3000");



function ajaxHandle(req, res) {
    // let data="";
    // const urlobj=url.parse(req.url,true);
    // const getData=urlobj.query;

    let data = "";
    req.on("data", (s) => {
        data += s;
    })
    req.on("end", () => {
        if (data === "") {
            const urlObj = url.parse(req.url, true);
            data = urlObj.query;
        } else {
            data = querystring.parse(data);
        }
        //数据
        switch (data.type) {
            case "login":
                // login(req,res,data);
                login(req, res, data);
                break;
            case "register":
                // register(req,res,data);
                register(req, res, data);
                break;
            case "goods":
                goods(req, res, data);
                break;
            default:
                res.write("404");
                res.end();
        }
    })

}

function login(req, res, data) {
    let i = 0;
    const onoff = userMsg.some((val, idx) => {
        i = idx;
        return val.user === data.user;
    })
    let msg = null;
    if (onoff) {
        if (userMsg[i].pass === data.pass) {
            msg = { state: 1, msg: "登录成功" }
            userMsg[i].state = 1;
        } else {
            msg = { state: 2, msg: "用户名密码不匹配" }
        }
    } else {
        msg = { state: 3, msg: "用户名不存在" }
    }
    res.write(JSON.stringify(msg));
    res.end();
}



let userMsg = [];


function register(req, res, data) {
    const onoff = userMsg.some((val, idx) => {
        return val.user === data.user;

    })
    let msg = {};
    if (onoff) {
        msg = { state: 2, msg: "用户名重复" };
    } else {
        userMsg.push({
            user: data.user,
            pass: data.pass,
            state: 0
        })
        msg = { state: 1, msg: "注册成功" };
    }
    res.write(JSON.stringify(msg));
    res.end();
}

// let userMsg=[];
// //登录
// function login(req,res,data){
//     let i;
//     const onoff=userMsg.some((val,idx)=>{
//         i=idx;
//         return val.user===data.user;
//     })

//     let msg={};
//     if(onoff){
//         if(userMsg[i].pass===data.pass){
//             userMsg[i].state = 1;
//             msg={code:200,msg:"登录成功",data:userMsg[i]};
//         }else{
//             msg={code:400,msg:"用户名密码不匹配",data:"NOT DATA"};
//         }
//     }else{
//         msg={code:404,msg:"用户名不存在，需要注册",data:"NOT DATA"};
//     }
//     res.write(JSON.stringify(msg));
//     res.end();
// }
// //注册
// function register(req,res,data){
//     let i;
// const onoff=userMsg.some((val,idx)=>{
//     i=idx;
//     return val.user===data.user;
// });

// let msg={};
// if(onoff){
//     // res.write(JSON.stringify({}))
//     msg={code:1,msg:"用户名重复",data:"NOT DATA"};
// }else{
//     // const v1Str = uuid.v1();
//     userMsg.push({
//         user:data.user,
//         pass:data.pass
//     })
//     // res.write("注册成功")
//     msg={code:200,msg:"注册成功"};
// }
// res.write(JSON.stringify(msg));
// res.end();
// }







// function goods(req,res,data){
//    let goodsData=fs.readFileSync("./www/data/goods.json");
// //    console.log(goodsData,33)
//    res.write(goodsData);
//    res.end();
// }







//静态资源的处理
function fileHandle(req, res) {
    const urlObj = url.parse(req.url);
    const path = "./www" + urlObj.pathname

    fs.readFile(path, (err, data) => {
        if (err) {
            res.write("404");
        } else {
            res.write(data);
        }
        res.end();
    })
}